What is the difference between cache.put(), cache.add(), and cache.addAll()? How do you implement a cache-first vs network-first strategy?
cache.put(request, response) stores manually; cache.add(request) fetches and stores; cache.addAll([...]) does same for array. Cache-first serves from cache then network; network-first tries network then falls back to cache.